[IA64] kexec: Unpin the correct VHPT TR in ia64_do_tlb_purge
authorIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
commit9f1061ef83bc12d5b05f4778996befeb79ddce29
treee6ce45bd92ca99dc1fac6093a01c05fc8a207713
parent941212afe4b673dccc4cb68ee4a0849b258ed297
[IA64] kexec: Unpin the correct VHPT TR in ia64_do_tlb_purge

GET_VA_VCPU_VHPT_MADDR(r2,r3) does not give the value of the VHPT
pinned into the TLB. I believe that this is because
current is changed between pinning and calling play_dead,
though I am not sure of the exact scemantics.

In any case, by recording the pinned value in a percpu variable,
and unpinning this value, the TR entry is removed and all is well.

Cc: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Simon Horman <horms@verge.net.au>
xen/arch/ia64/linux-xen/mca_asm.S
xen/arch/ia64/vmx/vmx_vcpu.c
xen/arch/ia64/xen/regionreg.c
xen/include/asm-ia64/regionreg.h